<?php
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of servicePlanes
 *
 * @author CESAR QUEVEDO
 */
class servicePlanes  extends validatePlanes   {

   //los planes se basan en:

   //-fecha de expiracion de documentos
   //-cantidad de acuerdos con archivos
   
    private $paqueteId;
    private $tipoPlan;
    private $cantidadArchivos;
    private $cantidadDias;

    public function __construct($paqueteId)
    {
        $this->paqueteId      = $paqueteId;
        $this->cantidadDias   = 90;
        $this->tipoPlan       = array (
                                sfConfig::get('app_planes_id_free')=>"free",
                                sfConfig::get('app_planes_id_profesional')=>"profesional",
                                sfConfig::get('app_planes_id_enterprise')=>"enterprise",
                                sfConfig::get('app_planes_id_corporativo')=>"corporativo"
                                );
        $this->setCantidadArchivos();
         
   

    }

    public function getCantidadArchivos()
    {
         return $this->cantidadArchivos;
    }

    private function setCantidadArchivos()
    {        
        if($this->tipoPlan[$this->paqueteId]=="profesional")
        {   //Profesional
            $this->cantidadArchivos  = sfConfig::get('app_planes_files_profesional');
        }
        elseif($this->tipoPlan[$this->paqueteId]=="enterprise")
        {   //Enterprise
            $this->cantidadArchivos  = sfConfig::get('app_planes_files_enterprise');;
        }
        elseif($this->tipoPlan[$this->paqueteId]=="corporativo")
        {   //Corporativo
            $this->cantidadArchivos  = sfConfig::get('app_planes_files_corporativo');;
        }
        else
        {  //Corporativo
           $this->cantidadArchivos   =  sfConfig::get('app_planes_files_free');;
        }
    }

    public function mostrarDocument($idAcuerdo,$typeDoc ="acuerdo"){

        if(isset($this->tipoPlan[$this->paqueteId]))
        {
            //verificar que tipo de plan tiene:
            if($this->tipoPlan[$this->paqueteId]=="free")
            {//   free:
               /*   verificar acuerdo
                    verificar acuerdo 90 dias()
                    si puede ver el acuerdo : true
                    si no puede             : false
               */
            
                $success = ($typeDoc=="acuerdo") ?  $this->AcuerdoExists($idAcuerdo) :  $this->ActaExists($idAcuerdo);

                if($success['success'])
                {
                    $docBean = $success['object'];
                    $respuesta   = $this->RangoFechaSuccess($docBean->getFechaRegistro(), $this->cantidadDias);
         
                    if($respuesta["success"])
                    {
                        return array("success" =>true,"message" => "puede ver el Documento{Version free}","diferencia"=>$respuesta["diferencia"]);
                    }
                    else
                    {
                         return array("success" =>false,"message" => "Solo puede ver el Documento por".$this->cantidadDias."dias");
                    }
                }
                else
                {
                     return array("success" =>false,"message" => "{error}{".$success['message']."}");
                }
                
            }
            else
            {// pagado:
                return array("success" =>true,"message" => "puede ver el Documento{Version pago}","diferencia"=>"ilimitado");
            }
         
        }
        else
        {
            return array("success" =>false,"message" => "{error}{no se encontro paquete}");
        }
       
    }

    public function RegistarPaqueteAceptor($userId)
    {
        $accion = $this->BuscarPlanUsuario($userId);
        if($accion['success'])
        { //actualizar el registo
            $planAceptor = $accion['object'];           
            $planAceptor->setCuotaDisponible($this->cantidadArchivos);
            $planAceptor->setValorActual($this->cantidadArchivos);
            $planAceptor->setFechaIncio(time());            
            $fecha_constante = mktime(0,0,0,date('m')+1,28,date('Y'));            
            $planAceptor->setFechaFin(date($fecha_constante));
            $planAceptor->save();
            return array("success" =>true,"message" => "{RegistarPaqueteAceptor}{se actualizo el paquete}");

        }
        else
        {   //crear el registro
            $planAceptor = new TbEstadoCuenta();
            $planAceptor->setUnidadMedida('cantidadArchivos');
            $planAceptor->setCuotaDisponible($this->cantidadArchivos);
            $planAceptor->setValorActual($this->cantidadArchivos);
            $planAceptor->setFechaIncio(time());
            $fecha_constante = mktime(0,0,0,date('m')+1,28,date('Y'));         
            $planAceptor->setFechaFin(date($fecha_constante));            
            $planAceptor->setTbUsuarioId($userId);
            $planAceptor->save();
            return array("success" =>true,"message" => "{RegistarPaqueteAceptor}{se creo el paquete}");

        }

    }


    public function InfoCanidadArchivosAcuerdo($userId){
        
        /*
         * verifico si el usuario existe
         *  si existe:         
         *          verifico el periodo de 30 dias 
         *           -las fechas son de 28 a 28 de cada mes se regulariza
         *               si la fecha es 28 actualizo nuevamente la cantidad de archivos y retorno informacion de del paquete/usuario
         *               no es 28 retorno informacion de del paquete/usuario
         *               
         */


    }

 

    


    


}
?>
